Method and apparatus for interpreting input movement on a computing device interface as a one- or two-dimensional input

ABSTRACT

A computing device is capable of intelligently interpreting input movement. The computing device detects a movement of a finger or object over an input interface. The movement is interpreted as one-dimensional or two-dimensional.

TECHNICAL FIELD

The disclosed embodiments relate to computing devices anduser-interfaces for such devices. In particular, embodiments describedherein provide a method and apparatus for interpreting input movement ona computing device interface as a one- or two-dimensional input.

BACKGROUND

Computing devices, particularly mobile computing devices and other smallform-factor computing devices, often require heavy use of scroll inputfrom a user. Generally, scroll input allows for users to linearlynavigate the display of content on a computing device. In mobilecomputing devices, for example, much of the user's actions are centeredabout selecting and viewing data or content. Lists, such as those thatcomprise contact records or messages, are examples of computing devicecontent that is typically scrollable in north/south (and sometimeseast/west) directions in order to enable the user to scan and viewnumerous records with ease.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a topology for enabling a computing device todetermine whether continuous movement of a user's finger or object overan input interface is to be determined as one-dimensional ortwo-dimensional input, according to embodiments.

FIG. 2 describes a method by which an input movement of a finger orobject is interpreted as a one- or two-dimensional input, under anembodiment.

FIG. 3 describes another method by which an input movement of a fingeror object is interpreted as a one- or two-dimensional input, underanother embodiment.

FIG. 4 illustrates implementation of methods such as described with FIG.2 and FIG. 3, under one or more embodiments.

FIG. 5 illustrates a method for interpreting an input movement of auser's finger or object based on the movement's velocity, under anotherembodiment.

FIG. 6 illustrates a computing device configured to implement one ormore embodiments described herein.

FIG. 7 illustrates a hardware diagram for a computing device that isconfigured to support any of the embodiments described herein.

DETAILED DESCRIPTION

Embodiments described herein provide for a computing device (orcomputer-implemented method) by which user's input movements, typicallymade by a user moving a finger or object over an input interface, areintelligently interpreted as being one of a one- or two-dimensionalinput. By intelligently interpreting the input movement, the computingdevice is able to respond quickly to perform the operation that the userintends with the input movement (e.g. scrolling or gesturing).

With some computing devices, a user's input movements are enteredthrough finger or object movements that are imprecise as compared to theideal input movement. With linear scrolling, for example, a user mayintend to swipe a finger vertically or horizontally, but in actuality,the user's motion may bend or wander. On some occasions, the user mayinitiate a particular input movement with stray or inadvertent contactmovement. Embodiments described herein intelligently interpret a user'sinput movement (as made on an input interface with finger or object) asbeing one- or two-dimensional. In particular, some embodiments assumethat a user intends to enter one-dimensional input, and subsequentlyenable the input to be determined as two-dimensional.

According to embodiments, a computing device includes an input interfaceand one or more processors. The input interface is configured to receivea finger or object movement as input from a user. The one or moreprocessors are configured to detect a user moving the finger or objectover the input interface. Position information is determined about thefinger or object at multiple instances.

In accordance with another embodiment, a computing device is capable ofintelligently interpreting input movement corresponding to a movement ofa finger or object over an input interface.

As used herein, the terms “programmatic”, “programmatically” orvariations thereof mean through execution of code, programming or otherlogic. A programmatic action may be performed with software, firmware orhardware, and generally without user-intervention, albeit notnecessarily automatically, as the action may be manually triggered.

One or more embodiments described herein may be implemented usingprogrammatic elements, often referred to as modules or components,although other names may be used. Such programmatic elements may includea program, a subroutine, a portion of a program, or a software componentor a hardware component capable of performing one or more stated tasksor functions. As used herein, a module or component, can exist on ahardware component independently of other modules/components or amodule/component can be a shared element or process of othermodules/components, programs or machines. A module or component mayreside on one machine, such as on a client or on a server, or amodule/component may be distributed amongst multiple machines, such ason multiple clients or server machines. Any system described may beimplemented in whole or in part on a server, or as part of a networkservice. Alternatively, a system such as described herein may beimplemented on a local computer or terminal, in whole or in part. Ineither case, implementation of system provided for in this applicationmay require use of memory, processors and network resources (includingdata ports, and signal lines (optical, electrical etc.), unless statedotherwise.

Furthermore, one or more embodiments described herein may be implementedthrough the use of instructions that are executable by one or moreprocessors. These instructions may be carried on a computer-readablemedium. Machines shown in figures below provide examples of processingresources and computer-readable mediums on which instructions forimplementing embodiments of the invention can be carried and/orexecuted. In particular, the numerous machines shown with embodiments ofthe invention include processor(s) and various forms of memory forholding data and instructions. Examples of computer-readable mediumsinclude permanent memory storage devices, such as hard drives onpersonal computers or servers. Other examples of computer storagemediums include portable storage units, such as CD or DVD units, flashmemory (such as carried on many cell phones and personal digitalassistants (PDAs)), and magnetic memory. Computers, terminals, networkenabled devices (e.g. mobile devices such as cell phones) are allexamples of machines and devices that utilize processors, memory, andinstructions stored on computer-readable mediums.

Overview

FIG. 1 illustrates a topology for enabling a computing device todetermine whether continuous movement of a user's finger or object overan input interface is to be determined as one-dimensional ortwo-dimensional input, according to embodiments. With reference to FIG.1, a topology is defined for an input interface 100 that corresponds to,for example, a touch-sensitive display surface. The topology 102 maycorrespond to, for example, a computer-generated model that reflectsvisually the manner in which an input movement 111 is interpreted by thecomputing device. As examples, a user's finger motion may correspond toa quick swipe, gesture, or meandering trace. Often user's enter scrollinput to skip through entries in linear fashion (e.g. scroll throughlists, flick through images). Two-dimensional input, on the other hand,may be used to enter a command (e.g. gesture), make a trace, viewcontents of a page etc. According to embodiments described, the positionof the finger or object at a given instance in making the input movementis used to determine whether the input movement is one-dimensional (andif so, in what direction) or two-dimensional. The topology 102 includeshorizontal input regions 110, 112 (reflecting leftward or rightwardfinger movements), vertical input regions 120, 122, (reflecting upwardor downward finger movements), and two-dimensional quadrants 130, 132,134 and 136. When a user's finger movement 111 is detected, oneembodiment provides that the topology is determined from an initialpoint 113. Subsequently sampled points are determined as beinghorizontal/linear (left or right), vertical/linear (up or down), ortwo-dimensional, depending on the position of the sampled point relativeto the topography. The precise configuration of the topology may bevaried, depending on the implementation.

As shown, a computing device may initially interpret a user's fingermovement as one-dimensional, but depending on the position of subsequentsamples points, the computing device may switch to interpreting thefinger movement as two-dimensional input. Conversely, once adetermination is made that the finger movement is two-dimensional, theinput is not subsequently interpreted to be one-dimensional.

Methodology

FIG. 2 and FIG. 3 each describe a method by which an input movement of afinger or object is interpreted as a vertical scroll input, horizontalscroll input, or two-dimensional input movement (e.g. gesture or traceinput). A method such as described with FIG. 2 or FIG. 3 may beimplemented on a computing device, using hardware and/or components, asdescribed with embodiments of FIG. 6 and FIG. 7.

A user may interact with a computing device by moving a finger over atouch-sensitive display surface (or other touch-sensitive region) of thecomputing device. Accordingly, step 210 provides that an input movementis detected corresponding to the user moving a finger (or other object)across a display surface. The initial point of contact between thefinger and display surface is termed the initial point of finger contact(at time T0).

A horizontal and vertical reference is determined about the initialpoint of finger contact (step 220). In some implementations, thehorizontal/vertical reference as the same orientation as the X, Y axisof the display surface (along the width/length of the display surface),but its origin or center coincides with the location of the finger down.

After the initial point of contact (T0), the user's finger movement issampled to determine one or more significant points of contact (step230). A significant point of contact may correspond to the point ofcontact after T0 that satisfies an initial criteria. The initialcriteria may correspond to, for example, (i) the first sampled pointafter T0; or (ii) the first sampled point after T0 that is separatedfrom T0 by some displacement (e.g. a set number of pixels).

In an embodiment, vertical and horizontal threshold values aredetermined for the finger input (step 240). With reference to FIG. 4(and FIG. 1), the threshold values may be determined as bands 425, 427that define regions of the topology used to interpret the input. Thevertical and horizontal threshold values are used together to determinewhether the finger motion is to be subsequently interpreted asone-dimensional (either horizontal or vertical) or two-dimensional.

The significant point of contact is used to determine which of thehorizontal or vertical references is preferred for the input motion(step 250). At the significant point, the input is processed as beingone of a linear horizontal or linear vertical input.

Additional points are sampled after determining the preference of thehorizontal or vertical reference (step 260). For individual points ofthe sample, threshold calculations are determined with reference to bothhorizontal and vertical references. Specifically, the thresholdhorizontal and vertical values are used to determine, for individuallysampled points, (i) the horizontal distance of the sampled point fromthe vertical reference, (ii) the vertical distance of the sampled pointfrom the horizontal reference (step 270). A determination is then madeas to whether the thresholds for both of the horizontal and verticaldistances have been exceeded (step 275). If both thresholds have notbeen exceeded (e.g. neither exceeded, or one exceeded but not theother), then the computing device continues to process the input of thefinger movement as one dimensional (step 280). More specifically, theinput of the finger motion is processed as either linear horizontal orvertical input, depending on the determination of step 250.

If, on the other hand, the thresholds for both of the horizontal andvertical distances have been exceeded, then the computing deviceswitches to processing the input as two-dimensional. As two-dimensionalinput, the input may be processed as, for example, trace input, draginput, or gesture input.

Following each of step 280, 290, a determination is made as to whetheradditional finger movement has occurred (step 284, 294). If no furtherfinger movement is detected, the input processing is completed 298. Ifthe sampled point was processed as one-dimensional input, and thedetermination is that the finger point continues, then step 260 isrepeated, where additional point(s) of the finger movement are sampledand processed for determination of linear/two-dimensional input. Thehorizontal/vertical determination for the linearity remains. If thesampled point was processed as two-dimensional input, and thedetermination is that the finger point continues, then step 290 isrepeated. Thus, no further determination is made as to whether the inputof the finger movement is linear or two-dimensional. Once the input isdetermined to be two-dimensional, the input is deemed two-dimensionaluntil it is over (e.g. finger lifts off).

FIG. 3 illustrates an embodiment that requires only one-dimensionalthreshold computation to determine whether the input is linear ortwo-dimensional, at a given instance, under an embodiment. A method suchas described with FIG. 3 may include steps such as described with FIG. 1in order to: (i) detect initial point of contact (T0) by finger contact(step 310); (ii) determine the horizontal and vertical reference aboutT0 (step 320); (iii) determine one or more significant points of contact(T1 . . . TN) after T0 (step 330).

The significant point(s) of contact are used to make a determination(step 334) as to which of the horizontal/vertical axis is preferred ordominant. In one implementation, if the path between T0 and thesignificant point of contact is closer to one axis than the other, thenthe closer axis is the dominant/preferred axis. In some implementations,one reference may be weighted over another, so as to bias thedetermination to conclude that axis is dominant. The weight may be setby manufacturer criteria, user preference, historical use, sensorinformation about the finger (e.g. thumb or finger being used) or theorientation of the device. According to an embodiment, the determinationof step 334 is one of (i) the vertical reference is preferred (step340), in which case a determination is made as to whether subsequentsampled points are to be considered vertical linear input ortwo-dimensional input; or (ii) the horizontal reference is preferred(Step 380), in which case a determination is made as to whether thesubsequent sampled points are to be considered horizontal linear inputor the two-dimensional input.

If the determination of step 334 is that the vertical reference ispreferred/dominant, then the input is initially processed aslinear/vertical. The threshold values that correspond to the maximumhorizontal separation for a sampled point of the input to be consideredlinear/vertical are defined (step 336). The significant point of contactis processed as one-dimensional vertical input (step 338). Theone-dimensional vertical input may coincide with, for example, avertical scroll value.

One or more additional points of the user's finger movement are sampled(step 340). At individual sampled points, the horizontal distance ismeasured from the vertical reference (step 344). The horizontal distanceto the vertical reference is then used to determine whether the user'sfinger motion is to continue to be processed as linear/vertical, or astwo-dimensional input. The determination may include comparing themeasured horizontal distance to the vertical reference to a thresholdvalue (step 348). If the result of the determination is that thethreshold value is not exceeded, then the one or more additional pointsare continued to be processed as one-dimensional vertical input (step352). For example, the vertical one-dimensional input values may beanalyzed to determine a corresponding scroll value.

After the additional points are processed, another determination is madeas to whether the finger movement continues on (step 356). If the fingermovement ceases, then input is no longer processed (step 360). If thefinger movement continues on, then additional points are sampled (step340) and the determination is made as to whether the finger movement isbe processed as vertical one-dimensional input or two-dimensional input(steps 344, 348).

If the result of the determination in step 348 is that the thresholdvalue is exceeded (when comparing the measured horizontal distance tothe vertical reference to a threshold value), then the one or moreadditional points are processed as two-dimensional input (step 370). Astwo-dimensional input, the input may be processed as, for example, traceinput, drag input, or gesture input. A determination is subsequentlymade as to whether the finger movement continues (step 374). If thefinger movement does not continue, then the processing of the fingermovement as input stops (step 378). If the finger movements continue,the additional movements are processed as two-dimensional input. Thus,under some embodiments, once the determination is made that the input istwo-dimensional, subsequent input is processed only as two-dimensionalinput.

If the determination of step 334 is that the horizontal reference ispreferred/dominant, then the input is initially processed aslinear/horizontal. The threshold values that corresponds to the maximumvertical separation for a sampled point of the input to be consideredlinear/horizontal are defined (step 376). The significant point ofcontact is processed as one-dimensional horizontal input (step 378). Theone-dimensional horizontal input may coincide with, for example, avertical scroll value. Subsequent steps may mirror those used to whenvertical reference is deemed preferred or dominant (steps 340-360).Thus, one or more additional points of the user's finger movement aresampled (step 380). At individual sampled points, the vertical distanceis measured from the horizontal reference (step 384). The verticaldistance to the horizontal reference is then used to determine whetherthe user's finger motion is to continue to be processed aslinear/horizontal, or as two-dimensional input. The determination mayinclude comparing the measured vertical distance to the horizontalreference to a threshold value (step 388). In some implementations, thisthreshold value may be the same as that determined for the horizontaldistance to the vertical reference (step 348). If the result of thedetermination is that the threshold value is not exceeded, then the oneor more additional points are continued to be processed asone-dimensional horizontal input (step 392). For example, the horizontalone-dimensional input values may be analyzed to determine acorresponding horizontal scroll value. As with vertical inputprocessing, another determination is made as to whether the fingermovement continues on (step 396). If the finger movement ceases, theninput is no longer processed (step 400). If the finger movementcontinues on, then additional points are sampled (step 380) and thedetermination is made as to whether the finger movement is be processedas horizontal one-dimensional input or two-dimensional input (steps 384,388).

If the result of the determination in step 388 is that the thresholdvalue is exceeded (when comparing the measured vertical distance to thehorizontal reference to a threshold value), then the one or moreadditional points are processed as two-dimensional input (step 170).Steps 370-378 then follow.

Implementation Examples

FIG. 4 illustrates implementation of methods such as described with FIG.2 and FIG. 3, under one or more embodiments. In FIG. 4, a topology isdefined on, for example a display surface 410 (or other input interface)that receives a finger movement 411, 413, 415 as input. Each fingermovement 411, 413, 415 is depicted as initiating at an initial point(O), which can be somewhere on the display surface. The horizontal andvertical references X, Y pass through O. In some embodiments, theorientation of the horizontal and vertical references X, Y coincideswith the orientation of the length/width axes of the input interface410. The horizontal and vertical references X, Y may be determined whenthe finger movement is first detected (step 220 of FIG. 2; step 320 ofFIG. 3). The topology may comprise the horizontal/vertical references X,Y, the reference comparison lines 421, 423, and the horizontal/verticaltolerance bands. The horizontal and vertical band lines 425, 427 maycoincide with the determined threshold values (step 240 of FIG. 2; steps336 or 376 of FIG. 3)

With reference to the finger movement 411, the methodologies describedwith each of FIG. 2 and FIG. 3 are illustrated. The significant point Pcorresponds to the first point in time that is a threshold distance (asmeasured by pixels) from O. P is used to determine which is dominant forinput movement 411: X or Y (step 240 of FIG. 2; step 334 of FIG. 3).Subsequent points P1, P2 are sampled. In an embodiment described withFIG. 2 and FIG. 3, the movement 411 is deemed linear because thevertical distance from the horizontal reference (X) is deemed less thanthe threshold of the band 425 (step 270 of FIG. 2; step 384 of FIG. 3).

Similarly, with alternative movement 413, the movement is deemed linearbecause the horizontal distance from the vertical reference (Y) isdeemed less than the threshold band 427. Movement 415, on the otherhand, includes a sample point Pi that is deemed two-dimensional. In anembodiment of FIG. 2, both of the (i) horizontal distance to thevertical reference Y, and (ii) the vertical distance to the horizontalreference X, exceed the threshold as defined by the bands 425, 427.

In comparison, an embodiment such as described with FIG. 2 may carryadditional computational expense (as compared to FIG. 3) in that a“point-in-rectangle” calculation is needed to make determinations ateach sampled point of the input movement. Moreover, the results of anembodiment of FIG. 2 do not necessarily match that of FIG. 3. Forexample, an input movement may start linear along one of the axis (e.g.X), then quickly switch to move along the other axis (e.g. Y) withoutever having both horizontal/vertical distance thresholds being exceeded.Under an embodiment of FIG. 2, the input would be interpreted as beinglinear in a direction of the X axis. Under an embodiment of FIG. 3, theinput would be interpreted as being two-dimensional after the movementswitches direction.

Numerous variations to embodiments described in this application may beimplemented. In particular, the topology depicted with, for example,FIG. 1 and FIG. 4 may be configured or varied based on variousparameters. The aspects of the topology that may be varied include thehorizontal/vertical references X, Y, the reference comparison lines 421,423, and the horizontal/vertical tolerance bands. According to variousembodiments, each of the aspects of the topology (and how fingermovement is determined as one- or two-dimensional) are configurable byparameters that include: a user-preference parameter; parametersindicating the orientation of the device with respect to the user'sfinger or input mechanism; parameters indicating whether the user isusing a thumb or other finger; historical parameters.

As more specific parameters, a user may set a preference to favor, forexample, the device to interpret finger motions as scrolling or otherlinear input. In such case, the bands 425, 427 may be widened toincrease the tolerance by which the finger movement can be consideredtwo-dimensional.

A sensor (or sensors) indicating the orientation of the device may beused to skew the horizontal/vertical references to match, for example,an orientation of how the user may hold or operate a device whenentering the input. Likewise, a sensor may be used to detect when theuser is using his thumb on the display surface. The sensors may sense,for example, the presence of a hand gripping the device (so as to inferthe thumb being used on the display). As another example, the sensor mayuse imaging to capture which finger the user utilizes. When the thumb ispresent, the following provide examples of how the topology canoptionally be modified: (i) skew horizontal/vertical reference X, Y toaccommodate presumed curvilinear motion of thumb when entering movementover touch-sensitive screen; (ii) widen or skew bands 425, 427 toreflect increase in tolerance values from which two-dimensional input isinferred.

Historical information may be used to determine, for example, likelihoodof the device's orientation when in use, or the propensity of the userto enter or want to enter linear or two-dimensional input.

Numerous other variations are possible and encompassed by embodimentsdescribed.

Velocity Based Interpretation of Input Movement

Still further, an embodiment enables a computing device to interpret auser's input movement of a finger or object as one- or two-dimensionalinput based on a velocity determination of the input movement. Such anembodiment may be based on an assumption that a user's one-dimensionalinput (e.g. scrolling) is likely to be faster than the user'stwo-dimensional input.

FIG. 5 illustrates a method for interpreting an input movement of auser's finger or object based on the movement's velocity, under anembodiment. In step 510, the computing device detects the user's fingeror object making contact with the input interface. As described withsome other embodiments, the input interface may correspond to a displayinterface.

On contact, the user may move the finger or object in a particulardirection. Step 520 provides that the velocity of the user's finger orobject being moved is calculated. For example, the position of theuser's finger or object is determined at several instances in rapidsuccession. At the same time, a timer is initiated at a designatedinstance when (or shortly after) the user first places his finger orobject on the input interface. The position information and the time inwhich the finger/object moves to the individual positions used todetermine the velocity of the finger/object. The velocity determinationmay be based on multiple sampled points (e.g. average, weightedaverage), or on one or more individual sampled points (e.g. the lastsampled point just before the user lifts his finger).

A determination is made in step 525 as to whether the input movement isone- or two-dimensional. This determination may be made by comparing thevelocity determination of step 520 with a threshold level that indicateswhether the input motion is one- or two-dimensional.

If the determination is that the velocity is greater than the designatedthreshold, then step 530 provides that the input movement is interpretedas a linear or one-dimensional input movement. As described with someother embodiments, the device may lock into interpreting the input asone-dimensionally subsequent to making the determination. Otherwise, ifthe determination is that the velocity is less than the designatedthreshold, then step 540 provides that the input movement is interpretedas a two-dimensional input movement.

Numerous variations are possible with an embodiment such as describedwith FIG. 5. For example, the computing device may switch frominterpreting a user's input movement as being one-dimensional tointerpreting the user's input movement as being two-dimensional if theuser's finger slows down while remaining in contact with the inputinterface. Likewise, the device may switch (or switch back) frominterpreting the user's input movement as being two-dimensional tointerpreting the user's input movement as being one-dimensional when thevelocity of the user's input movement slows down to be below thedesignated threshold.

Device Description

FIG. 6 illustrates a computing device configured to implement one ormore embodiments described herein. The computing device 600 maycorrespond to, for example, a mobile computing device such as describedwith FIG. 8 and elsewhere in this application. According to anembodiment, the computing device 600 includes input interface 610 forreceiving input corresponding to a user moving a finger or object overan input interface. In one embodiment, the input interface 610corresponds to a contact or touch-sensitive display screen. Other inputinterfaces correspond to, for example, touch-pads. As described withFIG. 8, the input interface 610 is combined or integrated with a displayassembly 614 that provides a display surface 616 for enabling output.

The device 600 is enabled to execute any one of many applications,including applications that receive and respond to scroll input (orother directional input), gestures, and/or trace inputs. There arenumerous applications that receive scroll input to enable contentgenerated from the application to be moved in one direction or another.Such applications may also be enabled to receive gestures to move aviewing perspective (or content) in two-dimensions. The followingprovides some examples of applications that can execute to use scroll(or directional) input in a particular manner. A photo viewer 622, forexample, may receive directional input (i.e. scroll input) to enable theuser to scan sets of images in a linear direction, or to scan throughthe contents of an image in a linear direction. The photo viewer 622 mayalso receive gesture input to enable the user to zoom and move theviewing perspective when viewing regions of the image. Numerous otherapplications may operate applications that similarly or capable ofreceiving and responding to one-dimensional and/or two-dimensionalinputs. Other examples of such applications include a contactapplication 624 that displays and provides contact records, a phoneapplication 626 to enable telephony, browser 628 (or document viewer) toenable web browsing, and a messaging application 629 (e.g. email, SMS,MMS, IM, integrated messaging platform etc.) to render messages andenable message composition. Numerous other applications mayalternatively be employed to handle one dimensional directional inputs(scrolling) as well as two-dimensional inputs.

According to an embodiment, input functionality 640 is included orotherwise integrated with the individual applications 620 to enable theuser to enter scrolling or gesture inputs. In one embodiment, the inputfunctionality 640 is made available as part of a functional operatingsystem library, for use with applications that execute on the device.One or more embodiments provide that the input functionality 640includes logic that (i) detects the user placing a finger or object onthe input interface to enter input, (ii) subsequently makes adetermination as to whether the user's input movement is one- ortwo-dimensional (e.g. gesture input), then interprets the user's inputmovement accordingly. Application content 662 reflecting the user'sinput actions may be returned to the display surface 616 as part of theuser's interaction with the device.

FIG. 7 illustrates a hardware diagram for a computing device that isconfigured to support any of the embodiments described herein. Anembodiment of FIG. 7 is depicted as a mobile computing device 800, whichmay correspond to any device that includes roaming wireless networkand/or telephony capabilities, including cellular telephony devicesand/or mobile messengers. In particular, embodiments described hereinmay apply to numerous kinds of mobile or small form-factor computingdevices. One type of mobile computing device that may be configured toinclude embodiments described herein includes a computer telephonydevice, such as a cellular phone or mobile device with voice-telephonyapplications (sometimes called “smart phone”). A computing device suchas described may be small enough to fit in one hand, while providingcellular telephony features in combination with other applications, suchas messaging, web browsing, media playback, personal informationmanagement (e.g. such as contact records management, calendarapplications, tasks lists), image or video/media capture and otherfunctionality. Mobile computing devices in particular may have numeroustypes of input mechanisms and user-interface features, such as keyboardsor keypads, mufti-directional or navigation buttons, application oraction buttons, and contact or touch-sensitive display screens. Somedevices may include combinations of keyboard, button panel area, anddisplay screen (which may optionally be contact-sensitive) on onefaçade. The button panel region may occupy a band between the keypad andthe display area, and include a navigation button and multipleapplication buttons or action buttons.

Specific types of messaging that may be performed includes messaging foremail applications, Short Message Service (SMS) messages, MultimediaMessage Service (MMS) messages, and proprietary voice exchangeapplications (such as SKYPE). Still further, other types of computingdevice contemplated with embodiments described herein include laptop ornotebook computers, ultra-mobile computers, personal digital assistants,and other multi-functional computing devices.

Still further, one or more embodiments may be implemented through anytype of computing device is a desktop computer that is configured toinclude real-time voice data exchange (e.g. through use of InternetProtocol telephony). Still further, other types of computer telephonydevices exist, including standalone devices that connect directly to atelephone network (whether Internet Protocol or Public Switch TelephonySystem (PSTN)) and provide software interfaces and applications.

According to an embodiment, the device 800 may include one or moreprocessors 710 (as processing resources), memory resources 720, one ormore wireless communication ports 830, and various other input/outputfeatures, including a display assembly 740, a speaker 742, a microphone744 and other input/output mechanisms 746. The display assembly 740 maybe contact-sensitive (to detect presence of objects), and morespecifically, touch-sensitive, to detect presence of human skin (such asthe motion of a finger). According to some embodiments, the displayassembly 740 provides the interface by which the user may enter inputmovements to interact with applications and application content. Asdescribed with prior embodiments, the processor(s) 710 are configured tointerpret input movements as either one- or two-dimensional inputs,corresponding to, for example, scrolling actions or gesturing/tracing.The processor(s) 710 may be configured to implement processes such asdescribed with, for example, FIG. 2, FIG. 3 and FIG. 7.

In some embodiments, the device 700 includes one or more sensors 703 (orother mechanisms) to detect one of more of (i) an orientation of thedevice when in use (relative to the user), (ii) whether the user isusing a thumb or other finger in entering input. Orientation informationdetermined from the one or more sensors may be used to skew or otherwiseafter the topology for determining whether the input movement isone/two-dimensional input. Likewise, a topology such as described withprevious embodiments may be skewed to accommodate the particular fingerthat the user is using. For example, a user's thumb may have apropensity to curve when creating input movement, and the topology maybe skewed to bias the interpretation as linear input.

It is contemplated for embodiments described herein to extend toindividual elements and concepts described herein, independently ofother concepts, ideas or system, as well as for embodiments to includecombinations of elements recited anywhere in this application. Althoughillustrative embodiments of the invention have been described in detailherein with reference to the accompanying drawings, it is to beunderstood that the invention is not limited to those preciseembodiments. As such, many modifications and variations will be apparentto practitioners skilled in this art. Accordingly, it is intended thatthe scope of the invention be defined by the following claims and theirequivalents. Furthermore, it is contemplated that a particular featuredescribed either individually or as part of an embodiment can becombined with other individually described features, or parts of otherembodiments, even if the other features and embodiments make nomentioned of the particular feature. This, the absence of describingcombinations should not preclude the inventor from claiming rights tosuch combinations.

1. A computing device comprising: an input interface on which a usermoves a finger or object; one or more processors configured to: detect amovement of a user's finger or object over the input interface;determine multiple points in the movement, including an initial point ofthe movement; determine a topology about the initial point that includes(i) a horizontal reference and a vertical reference; (ii) a plurality ofregions, the plurality of regions being defined at least in part by ahorizontal distance threshold value with respect to the verticalreference, and a vertical distance threshold value with respect to thehorizontal reference; and determine the movement as one- ortwo-dimensional based on any one of the multiple points in the movementbeing located in one of the plurality of regions of the topology that isassigned to a determination of two-dimensional input.
 2. The computingdevice of claim 1, wherein the input interface includes atouch-sensitive display.
 3. The computing device of claim 1, wherein theone or more processors are configured to define the topology to includea one or more regions that are assigned to each of a determination ofhorizontal linear input and vertical linear input.
 4. The computingdevice of claim 3, wherein the one or more processors are configured tointerpret the movement as horizontal linear or vertical linear based onindividual points in the movement being located in the one or moreregions that are assigned to each of the determinations of horizontallinear input and vertical linear input.
 5. The computing device of claim1, wherein the one or more processors are configured to switch frominterpreting the movement as one-dimensional input to interpreting themovement as two-dimensional input.
 6. The computing device of claim 1,wherein the one or more processors are configured to determine asignificant point as one of the multiple points in the movement, thesignificant point satisfying a criterion of time or distance from theinitial point.
 7. The computing device of claim 6, wherein the one ormore processors are configured to determine a direction of the movementbased on the significant point.
 8. The computing device of claim 7,wherein the one or more processors are configured to determine themovement as linear when determining the direction.
 9. The computingdevice of claim 1, wherein the one or more processors are configured toafter the topology based on one or more sensor parameters.
 10. Thecomputing device of claim 9, wherein the one or more processors areconfigured to after the topology based on historical information aboutone or more of (i) a user's preference for one- or two-dimensionalinput, or (ii) a user's preference for how to define a coordinate space.11. The computing device of claim 9, further comprising one or moresensors to determine an orientation of the device when held by a user,and wherein the one or more processors are configured to use informationindicating an orientation of the device relative to the user in alteringthe topology.
 12. The computing device of claim 9, further comprising asensor to detect that the user is using a thumb in creating themovement, and wherein the one or more sensors are configured to afterthe topology based on the user using the thumb rather than anotherfinger.
 13. A method for operating a computing device, the method beingimplemented by one or more processors and comprising steps of: detectinga plurality of points in a user's movement of a finger over an inputinterface, the plurality of points including an initial point, asignificant point, and one or more other points; determining at leastone of a horizontal reference or a vertical reference for the inputmovement about at the initial point; determining at least one of ahorizontal or vertical threshold value for the movement; making adetermination as to whether the movement is vertical or horizontal basedon the significant point; for each of one or more other points, making adetermination as to whether the movement is one- or two-dimensionalbased on at least one of (i) a horizontal separation between that pointand the vertical reference; or (ii) a vertical separation between thatpoint and the vertical reference; and processing the movement as one- ortwo-dimensional input based on the determination.